export interface DefaultDetailData {
    code: number
    data: DetailData
    message: string
    ttl: number
}



export interface DetailData {
    Card: {
        archive_count: number
        article_count: number
        card: {}
        follower: number
        following: boolean
        like_num: number
    }
    Related: Array<Related>
    Reply: {
        page: {
            acount: number
            count: number
            num: number
            size: number
        }
    }
    Spec: null
    Tags: Array<Tags>
    View: View
    elec: null
    guide: null
    hot_share: { show: boolean, list: [] }
    recommend: null
    view_addit: { 63: boolean, 64: boolean, 69: boolean, 71: boolean, 72: boolean }
}

export interface Related {
    aid: number
    bvid: string
    cid: number
    copyright: number
    ctime: number
    desc: string
    dimension: { width: number, height: number, rotate: number }
    duration: number
    dynamic: string
    first_frame: string
    is_ogv: boolean
    ogv_info: null
    owner: {
        face: string
        mid: number
        name: string
    }
    pic: string
    pub_location: string
    pubdate: number
    rcmd_reason: number
    rights: {
        arc_pay
        :
        number
        autoplay
        :
        number
        bp
        :
        number
        download
        :
        number
        elec
        :
        number
        hd5
        :
        number
        is_cooperation
        :
        number
        movie
        :
        number
        no_background
        :
        number
        no_reprint
        :
        number
        pay
        :
        number
        pay_free_watch
        :
        number
        ugc_pay
        :
        number
        ugc_pay_preview
        :
        number
    }
    season_type: number
    short_link: string
    short_link_v2: string
    stat: {
        aid
        : number
        coin
        : number

        danmaku
        : number
        dislike
        : number

        favorite
        : number
        his_rank
        : number

        like
        : number
        now_rank
        : number

        reply
        : number
        share
        : number
        view
        : number
    }
    state: number
    tid: number
    title: string
    tname: string
    videos: number
}

export interface Tags {
    alpha: number
    archive_count: string
    attribute: number
    color: string
    content: string
    count: { view: number, use: number, atten: number }
    cover: string
    ctime: number
    extra_attr: number
    featured_count: number
    hated: number
    hates: number
    head_cover: string
    is_activity: boolean
    is_atten: number
    is_season: boolean
    jump_url: string
    liked: number
    likes: number
    music_id: string
    short_content: string
    state: number
    subscribed_count: number
    tag_id: number
    tag_name: string
    tag_type: string
    type: number
}

export interface View {
    aid: number
    bvid: string
    cid: number
    copyright: number
    ctime: number
    desc: string
    desc_v2: Array<any>
    dimension: { width: number, height: number, rotate: number }
    duration: number
    dynamic: string
    honor_reply: { honor: Array<any> }
    is_chargeable_season: boolean
    is_season_display: boolean
    is_story: boolean
    label: { type: boolean }
    like_icon: string
    no_cache: boolean
    owner: { mid: number, name: string, face: string }
    pages: Array<any>
    pic: string
    premiere: null
    pubdate: number
    redirect_url?: string
    rights: {
        arc_pay: number
        autoplay: number
        bp: number
        clean_mode: number
        download: number
        elec: number
        free_watch: number
        hd5: number
        is_360: number
        is_cooperation: number
        is_stein_gate: number
        movie: number
        no_background: number
        no_reprint: number
        no_share: number
        pay: number
        ugc_pay: number
        ugc_pay_preview: number
    }
    season_id: number
    stat: {
        aid: number
        argue_msg: string
        coin: number
        danmaku: number
        dislike: number
        evaluation: string
        favorite: number
        his_rank: number
        like: number
        now_rank: number
        reply: number
        share: number
        view: number
    }
    state: number
    subtitle: { allow_submit: boolean, list: Array<any> }
    teenage_mode: number
    tid: number
    title: string
    tname: string
    ugc_season: {
        attribute: number
        cover: string
        ep_count: number
        id: number
        intro: string
        is_pay_season: boolean
        mid: string
        season_type: number
        sections: Array<Sections>
        sign_state: number
        stat: {
            coin: number
            danmaku: number
            fav: number
            his_rank: number
            like: number
            now_rank: number
            reply: number
            season_id: number
            share: number
            view: number
        }
        title: string
    }
    user_garb: { url_image_ani_cut: string }
    videos: number
}

export interface PlayerUrlData {
    code: number
    data: PlayerData
    message: string
    ttl: number
}

export interface PlayerData {
    accept_description: string
    accept_format: Array<string>
    accept_quality: Array<string>
    durl: Array<Durl>
    format: string
    from: string
    high_format: null
    last_play_cid: number
    last_play_time: number
    message: string
    quality: number
    result: string
    seek_param: string
    seek_type: string
    support_formats: Array<any>
    timelength: number
    video_codecid: number
}

export interface Durl {
    ahead: string
    backup_url: null
    length: number
    order: number
    size: number
    url: string
    vhead: string
}


export interface Sections {
    episodes: Array<any>
    id: number
    season_id: number
    title: string
    type: number
}

export interface Episodes {
    aid: number
    arc: View
    attribute: number
    bvid: string
    cid: number
    id: number
    page: {
        cid: number
        dimension: { width: number, height: number, rotate: number }
        duration: number
        from: string
        page: number
        part: string
        vid: string
        weblink: string
    }
    season_id: number
    section_id: number
    title: string
}

export interface Pages {
    cid: number
    part: string
    page: number
}